/*******************************************************************************
  * 文件：TM1620.h
  * 作者：djy
  * 版本：v1.0.0
  * 日期：2020.05.29
  * 说明：TM1620驱动程序，仅提供MCU与TM1629芯片的读写驱动，实际显示与硬件
  * 原理图有关。
*******************************************************************************/
#ifndef _TM1620_H
#define _TM1620_H

/* 头文件 *********************************************************************/
#include "Typedefine.h"
#include "Constant.h"
#include "Macro.h"
#include "Hardware.h"
#include "Hardware_IO.h"

/* 宏定义 *********************************************************************/
#define TM1629_IO_DIO_H     Hardware_1620SetDIN(HIGH)
#define TM1629_IO_DIO_L     Hardware_1620SetDIN(LOW)
#define TM1629_IO_CLK_H     Hardware_1620SetCLK(HIGH)
#define TM1629_IO_CLK_L     Hardware_1620SetCLK(LOW)
#define TM1629_IO_STB_H     Hardware_1620SetSTB(HIGH)
#define TM1629_IO_STB_L     Hardware_1620SetSTB(LOW)
#define TM1629_DELAY_US(x)  Hardware_DelayUS(x)
#define TM1629_DELAY_NOP(x) {                           \
                                U16 i;                  \
                                for(i=x;i!=0;i--);      \
                            }

/* 类型定义 *******************************************************************/
typedef enum
{
    eBRIGHT_LEVEL_0 = 0x00,
    eBRIGHT_LEVEL_1 = 0x01,
    eBRIGHT_LEVEL_2 = 0x02,
    eBRIGHT_LEVEL_3 = 0x03,
    eBRIGHT_LEVEL_4 = 0x04,
    eBRIGHT_LEVEL_5 = 0x05,
    eBRIGHT_LEVEL_6 = 0x06,
    eBRIGHT_LEVEL_7 = 0x07,
}TM1629Bright_te;// LED亮度等级 

/* 变量声明 *******************************************************************/
/* 函数声明 *******************************************************************/
void TM1629_SetBright(TM1629Bright_te eTM1629Bright); // 设置TM1629亮度等级
void TM1629_WriteDisplayBytes(U8 u8RegAddr,U8 *pu8DataAddr,U8 u8Len);  // 连续写入显示寄存器数据
void TM1629_WriteDisplayByte(U8 u8RegAddr,U8 u8Data);  // 写入显示寄存器一个字节
void TM1629_Init(void); 

#endif /* _TM1620_H */

/***************************** 文件结束 ***************************************/
